Finite-length equalization over multi-input multi-output (MIMO) channels

ABSTRACT

A MIMO Decision Feedback Equalizer improves operation of a receiver by canceling the spatio-temporal interference effects caused by the Multiple-Input-Multiple-Output (MIMO) channel memory with a set of Finite Impulse Response (FIR) filters in both the feed-forward and the feedback MIMO filters. The coefficients of these FIR filters can be fashioned to provide a variety of controls by the designer.

RELATED APPLICATION

This is a continuation of U.S. patent application Ser. No. 12/287,203, filed Oct. 7, 2008, now U.S. Pat. No. 7,586,984, issued Sep. 8, 2009, which is a continuation application of U.S. patent application Ser. No. 10/911,789, filed Aug. 5, 2004, now U.S. Pat. No. 7,433,402 issued Oct. 7, 2008, which is a continuation of U.S. patent application Ser. No. 09/671,638 filed Sep. 28, 2000, now U.S. Pat. No. 6,870,882, issued Mar. 22, 2005. This application claims priority from Provisional application No. 60/158,714, filed on Oct. 8, 1999. This application is also related to a Provisional application No. 60/158,713, also filed on Oct. 8, 1999.

BACKGROUND OF THE INVENTION

In multi-user communication over linear, dispersive, and noisy channels, the received signal is composed of the sum of several transmitted signals corrupted by inter-symbol interference, inter-user interference, and noise. Examples include TDMA (time division multiple access) digital cellular systems with multiple transmit/receive antennas, wide-band asynchronous CDMA (code division multiple access) systems, where inter-user interference is also known as multiple access interference, wide-band transmission over digital subscriber lines (DSL) where inter-user interference takes the form of near-end and far-end crosstalk between adjacent twisted pairs, and in high-density digital magnetic recording where inter-user interference is due to interference from adjacent tracks.

Multi-user detection techniques for multi-input multi-output (MIMO) systems have been shown to offer significant performance advantages over single user detection techniques that treat inter-user interference as additive colored noise and lumps its effects with thermal noise. Recently, it has been shown that the presence of inter-symbol interference in these MIMO systems could enhance overall system capacity, provided that effective multi-user detection techniques are employed.

The optimum maximum likelihood sequence estimation (MLSE) receiver for MIMO channels was developed by S. Verdu, “Minimum Probability of Error for Asynchronous Gaussian Multiple Access Channels,” IEEE Transactions on Information Theory, January 1986, pp. 85-96. However, its exponential complexity increases with the number of users, and channel memory makes its implementation costly for multi-user detection on severe-inter-symbol interference channels.

Two alternative transceiver structures have been recently proposed for MIMO dispersive channels as well. These structures, which are widely used in practice for single-input single-output dispersive channels, are the Discrete Multitone and minimum-mean-square-error decision feedback equalizer (MMSE-DFE). In the latter category, this includes A. Duel-Hallen “Equalizers for Multiple Input Multiple Output Channels and PAN Systems with Cyclostationary Input Sequences,” IEEE Journal on Selected Areas on Communications, April 1992, pp. 630-639; A. Duel-Hallen “A Family of Multiuser Decision-Feedback Detectors for Asynchronous Code Division Multiple Access Channels,” IEEE Transactions on Communications, February/March/April 1995, pp. 421-434; J. Yang et an “Joint Transmitter and Receiver Optimization for Multiple Input Multiple Output Systems with Decision Feedback,” IEEE Transactions on Information Theory, Sep. 1994, pp. 1334-1347; and J. Yang et al “On Joint Transmitter and Receiver Optimization for Multiple Input Multiple Output (MIMO) Transmission Systems,” IEEE Transactions on Communications, Dec. 1994, pp. 3221-3231. Alas, the prior art does not offer a practical MIMO MMSE-DFE receiver with feedforward and feedback FIR (finite impulse response) filters whose coefficients can be computed in a single computation (i.e., non-iteratively) in real-time under various MIMO detection scenarios.

SUMMARY

An advance in the art is realized with receiver having a multiple number of receiving antennas that feed a MIMO feedforward filter that is constructed from FIR filters with coefficients that are computed based on environment parameters that are designer-specified. Signals that are derived from a multiple-output feedback filter structure are subtracted from the signals from the multiple outputs of the feedforward filter structure, and the resulting difference signals are applied to a decision circuit. Given a transmission channel that is modeled as a set of FIR filters with memory v, a matrix W is computed for a feedforward filter that results in an effective transmission channel B with memory N_(b), where N_(b)<v, where B is optimized so that B_(opt)=argmin_(B)trace(R_(ee)) subject to selected constraints; R_(ee) being the error autocorrelation function. The feedback filter is modeled by [I_(n) _(i) 0_(n) _(i) _(×n) _(i) _(N) _(b) ]−B*, where n_(i) is the number of outputs in the feedforward filter, as well as the number of outputs in the feedback filter.

The coefficients of feedforward and the feedback filters, which are sensitive to a variety of constraints that can be specified by the designer, are computed by a processor in a non-iterative manner, only as often as it is expected for the channel characteristics to change.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 shows the major elements of a receiver in accord with the principles disclosed herein;

FIG. 2 presents the structure of elements 23 and 26, where element 26 differs in size from element 23 in that element 23 has n_(o) number of inputs and n_(o)×n_(i) filters, whereas element 26 has n_(i) number of inputs and n_(i)×n_(i) filters;

FIG. 3 is a flowchart describing one method carried out by processor 22; and

FIG. 4 is a flowchart describing another method carried out by processor 22.

DETAILED DESCRIPTION

FIG. 1 depicts the general case of an arrangement having a transmitter element 10 with n_(i) transmitting antennas 11-1, 11-2, . . . 11-n _(i), that output signals (e.g., space-time encoded signals) to a transmission channel, and n_(o) receiving antennas 21-1, 21-2, . . . 21-n _(o). Each transmitting antenna p outputs a complex-valued signal x_(p), the signals of the n_(i) antennas pass through a noisy transmission channel, and the n_(o) receiving antennas capture the signals that passed through the transmission channel. The received signals are oversampled by a factor of l in element 20 and applied to feedforward W filters 23. Thus, the sampling clock at the output of element 20 is of period T_(s)=T/l, where T is the inter-symbol period at the transmitting antennas. The transmission channel's characterization is also referenced to T_(s).

Filter bank 23 delivers an n_(i) plurality of output signals (n_(i) can equal n_(q) for example) from which feedback signals are subtracted in circuit 24 and applied to decision circuits 25 (comprising conventional slicers). The outputs of decision circuits 25 are applied to feedback filters 26, which develop the feedback signals. Processor 22 develops the filter coefficients for the filters within elements 23 and 26 and installs the coefficients in the filters within these elements, as disclosed in detail below.

In the illustrative embodiment disclosed herein, the received signal is expressed by

$\begin{matrix} {{y_{k}^{(j)} = {{\sum\limits_{i = 1}^{n_{i}}{\sum\limits_{m = 0}^{v^{({i,j})}}{h_{m}^{({i,j})}x_{k - m}^{(i)}}}} + n_{k}^{(j)}}},} & (1) \end{matrix}$ where y_(k) ^((j)) is the signal at time k at the j^(th) receiving antenna, h_(m) ^((i,j)) is the m^(th) coefficient (tap) in the channel impulse response between the i^(th) transmitting antenna and the j^(th) receiving antenna, and n^((j)) is the noise vector at the j^(th) receiving antenna. The memory of this path (i.e., the largest value of m for which h_(m) ^((i,j)) is not zero) is denoted by v^((i,j)).

It may be noted that it not unreasonable to assume, that the memory of the transmission channel is the same for all i,j links (n_(i)×n_(o) such links), in which case v^((i,j))=v. Alternatively, the v^((i,j)) limit in equation (1) can be set to that v which corresponds to maximum length of all of the n_(i)×n_(o) channel input responses, i.e., v=max_(i,j)v^((i,j)). It may also be noted that all of the variables in equation (1) are actually l×1 column vectors, corresponding to the l time samples per symbol in the oversampled FIG. 1 arrangement.

By grouping the received samples from all n_(o) antennas at symbol time k into an n_(o)l×1 column vector y_(k), one can relate y_(k) to the corresponding n_(i)×1 (column) vector of input samples as follows

$\begin{matrix} {{y_{k} = {{\sum\limits_{m = 0}^{v}{H_{m}x_{k - m}}} + n_{k}}},} & (2) \end{matrix}$ where H_(m) is the MIMO channel coefficients matrix of size n_(o)l×n_(i), x_(k-m) is a size n_(i)×1 input (column) vector, and n_(k) is a size n_(o)l×1 vector.

Over a block of N_(f) symbol periods, equation (2) can be expressed in matrix notation as follows:

$\begin{matrix} {\begin{bmatrix} y_{k - N_{f} - 1} \\ y_{k + N_{f} - 2} \\ \vdots \\ y_{k} \end{bmatrix} = {{\begin{bmatrix} H_{0} & H_{1} & \ldots & H_{v} & 0 & \ldots & 0 \\ 0 & H_{0} & H_{1} & \ldots & H_{v} & 0 & \ldots \\ \vdots & \vdots & \vdots & \vdots & \vdots & ⋰ & \vdots \\ 0 & \ldots & 0 & H_{0} & H_{1} & \ldots & H_{v} \end{bmatrix}\begin{bmatrix} x_{k + N_{f} - 1} \\ x_{k + N_{f} - 2} \\ \vdots \\ x_{k - v} \end{bmatrix}} + {\quad\begin{bmatrix} n_{k + N_{f} - 1} \\ n_{k + N_{f} - 2} \\ \vdots \\ n_{k} \end{bmatrix}}}} & (3) \end{matrix}$ or, more compactly, y _(k+N) _(f) _(−1:k) =Hx _(k+N) _(f) _(−1:k−v) +n _(k+N) _(f) _(−1:k).  (4) The subscripts in equation (4) indicate a range. For example k+N_(f)−1:k means the range from k+N_(f)−1 to k, inclusively.

It is useful to define the following correlation matrices: R _(xy) ≡E[x _(k+N) _(f) _(−1:k−v) y* _(k+N) _(f) _(−1:k) ]=R _(xx) H*  (5) R _(yy) ≡E[y _(k+N) _(f) _(−1:k) y* _(k+N) _(f) _(−1:k) ]=HR _(xxi H*+R) _(nn),  (6) R _(xx) ≡E[x _(k+N) _(f) _(−1:k−v) x* _(k+N) _(f) _(−1:k−v)] and  (7) R _(nn) ≡E[n _(k+N) _(f) _(−1:k) n* _(k+N) _(f) _(−1:k)],  (8) and it is assumed that these correlation matrices do not change significantly in time or, at least, do not change significantly over a time interval that corresponds to a TDMA burst (assumed to be much shorter than the channel coherence time), which is much longer than the length of the FIR filters in element 23 (in symbol periods denoted by N_(f)). Accordingly, a re-computation within processor 22 of the above matrices, and the other parameters disclosed herein, leading to the computation of the various filter coefficients, need not take place more often than once every TDMA burst. Once H, R_(xx) and R_(nn) are ascertained (through the conventional use of training sequences), R_(xy) and R_(yy) are computed by R_(xx)H* and HR_(xx)H*+R_(nn), respectively.

In accordance with the principles disclosed herein, element 23 comprises a collection of FIR filters that are interconnected as shown in FIG. 2, and the impulse response coefficients of element 23 can be expressed by W*≡[W*₀ W*₁ . . . W*_(N) _(i-1) ], each having N_(f) matrix taps W_(i), of size (ln₀×n_(i)). That is, W_(i) has the form:

$\begin{matrix} {W_{i} = \begin{bmatrix} w_{i}^{({1,1})} & \ldots & w_{i}^{({1,n_{i}})} \\ \vdots & \ldots & \vdots \\ w_{i}^{({n_{o},1})} & \ldots & w_{i}^{({n_{o},n_{i}})} \end{bmatrix}} & (9) \end{matrix}$ where each entry in W_(j) ^((p,q)) is an l×1 vector corresponding to the l output samples per symbol. Stated in other words, the matrix W₀ specifies the 0^(th) tap of the set of filters within element 23, the matrix W₁ specifies the 1^(st) tap of the set of filters within element 23, etc.

Also in accordance with the principles disclosed herein, element 26 comprises a collection of FIR filters that also are interconnected as shown in FIG. 2, and the impulse response coefficients of element 26 is chosen to be equal to [I _(n) _(i) 0_(n) _(i) _(×n) _(i) _(N) _(b) ]−B*≡[(I _(n) _(i) −B* ₀)B* ₁ . . . B* _(N) _(b) ],  (10) where B* is expressed by B*≡[B*₀B*₁ . . . B*_(N) _(b) ], with (N_(b)+1) matrix taps B_(i), each of size n_(i)×n_(i). That is, B_(i) has the form:

$\begin{matrix} {{B_{i}\begin{bmatrix} b_{i}^{({1,1})} & \ldots & b_{i}^{({1,n_{i}})} \\ \vdots & \ldots & \vdots \\ b_{i}^{({n_{i},1})} & \ldots & b_{i}^{({n_{i},n_{i}})} \end{bmatrix}}.} & (11) \end{matrix}$ Stated in other words, B₀ specifies the 0^(th) tap of the set of filters within element 26, the matrix B₁ specifies the 1^(st) tap of the set of filters within element 26, etc.

Defining {tilde over (B)}*≡[0_(n) _(i) _(×n) _(i) _(Δ) _(b) B*], where {tilde over (B)}* is a matrix of size n_(i)×n_(i)(N_(f)+v), the value of N_(b) is related to the decision delay by the equality (Δ+N_(b)+1)=(N_(f)+v).

The error vector at time k is given by E _(k) ={tilde over (B)}*x _(k+N) _(f) _(−1:k−v) −W*y _(k+N) _(f) _(−1:k)  (12) Therefore, the n_(i)×n_(i) error auto-correlation matrix is

$\begin{matrix} \begin{matrix} {R_{ee} \equiv {E\left\lbrack {E_{k}^{*}E_{k}} \right\rbrack}} \\ {= {{{\overset{\sim}{B}}^{*}R_{xx}\overset{\sim}{B}} - {{\overset{\sim}{B}}^{*}R_{xy}W} - {W^{*}R_{yx}\overset{\sim}{B}} + {W^{*}R_{yy}W}}} \\ {= {{{{\overset{\sim}{B}}^{*}\left( {R_{xx} - {R_{xy}R_{yy}^{- 1}R_{yx}}} \right)}{\overset{\sim}{B}}^{*}} +}} \\ {\left( {W^{*} - {{\overset{\sim}{B}}^{*}R_{xy}R_{yy}^{- 1}}} \right)\left( {W^{*} - {{\overset{\sim}{B}}^{*}R_{xy}R_{yy}^{- 1}}} \right)} \\ {= {{{\overset{\sim}{B}}^{*}R^{\bot}\overset{\sim}{B}} + {G^{*}R_{yy}G}}} \end{matrix} & (13) \end{matrix}$

Using the Orthogonality Principle, which states that E[E_(k)y*_(k+N) _(t) _(−tk)]=0, it can be shown that the optimum matrix feedforward and feedback filters are related by

$\begin{matrix} {{W_{opt}^{*} = {{{\overset{\sim}{B}}_{opt}^{*}R_{xy}R_{yy}^{- 1}}\mspace{50mu} = {{{\overset{\sim}{B}}_{opt}^{*}R_{xx}{H^{*}\left( {{{HR}_{xx}H^{*}} + R_{nn}} \right)}^{- 1}}\mspace{50mu} = {{{\overset{\sim}{B}}_{opt}^{*}\left( {R_{xx}^{- 1} + {H^{*}R_{nn}^{- 1}H}} \right)}^{- 1}H^{*}R_{nn}^{1}}}}},} & (14) \end{matrix}$ and the n_(i)×n_(i) auto-correlation matrix R_(ee) is

$\begin{matrix} \begin{matrix} {R_{ee} \equiv {E\left\lbrack {E_{k}E_{k}^{*}} \right\rbrack}} \\ {= {{{\overset{\sim}{B}}^{*}\left( {R_{xx} - {R_{xy}R_{yy}^{- 1}R_{yx}}} \right)}\overset{\sim}{B}}} \\ {= {{\overset{\sim}{B}}^{*}R^{\bot}\overset{\sim}{B}}} \\ {= {{{\overset{\sim}{B}}^{*}\left( {R_{xx} - {R_{xx}{H^{*}\left( {{{HR}_{xx}H^{*}} + R_{nn}} \right)}^{- 1}{HR}_{xx}}} \right)}\overset{\sim}{B}}} \\ {= {{{\overset{\sim}{B}}^{*}\left( {R_{xx}^{- 1} + {H^{*}R_{nn}^{- 1}H}} \right)}^{- 1}{\overset{\sim}{B}.}}} \end{matrix} & (15) \end{matrix}$ R_(ee) can also be expressed as R_(ee)={tilde over (B)}*R⁻¹{tilde over (B)}, where R=R_(xx) ⁻¹+H*R_(nn) ⁻¹H.

It remains to optimize values for the B matrix and the W matrix such that, in response to specified conditions, the trace (or determinant) of R_(ee) is minimized. The following discloses three approaches to such optimization.

Scenario 1

In this scenario, it is chosen to process only previous receiver decisions. These decisions relate to different users that concurrently have transmitted information that has been captured by antennas 21-1-21-n _(o) and detected in circuit 25. That means that feedback element 26 uses only delayed information and that the 0^(th) order coefficients of the filters within element 26 have the value 0. Therefore, in light of the definition expressed in equation (10), this scenario imposes the constraint of B₀=I_(n) _(i) .

To determine the optimum matrix feedback filter coefficients under this constraint, the following optimization problem needs to be solved:

$\begin{matrix} {{{{\min_{\overset{\sim}{B}}R_{ee}} = {\min_{\overset{\sim}{B}}{{\overset{\sim}{B}}^{*}R^{- 1}\overset{\sim}{B}}}},\mspace{14mu}{{{subject}\mspace{14mu}{to}\mspace{14mu}{\overset{\sim}{B}}^{*}\Phi} = C^{*,}}}{where}} & (16) \\ {{\Phi \equiv {\begin{bmatrix} I_{n_{i}} & 0 & \ldots & 0 \\ 0 & I_{n_{i}} & \vdots & \vdots \\ \vdots & 0 & ⋰ & I_{n_{i}} \\ 0 & \ldots & \ldots & 0 \end{bmatrix}\mspace{14mu}{and}\mspace{14mu} C^{*}}} = \begin{bmatrix} 0_{n_{i} \times n_{i}\Delta} & I_{n_{i}} \end{bmatrix}} & (17) \end{matrix}$ It can be shown that the solution to the above is given by {tilde over (B)} _(opt) =RΦ(Φ*RΦ)⁻¹ C,  (18) resulting in the error signal R _(ee,min) =C*(Φ*RΦ)⁻¹ C  (19) If we define the partitioning

$\begin{matrix} {{R \equiv \begin{bmatrix} R_{11} & R_{12} \\ R_{12}^{*} & R_{22} \end{bmatrix}},} & (20) \end{matrix}$ where R₁₁ is of size n_(i)(Δ+1)×n_(i)(Δ+1), then

$\begin{matrix} {{{\overset{\sim}{B}}_{opt} = {{\begin{bmatrix} R_{11} \\ R_{12}^{*} \end{bmatrix}R_{11}^{- 1}C} = {\begin{bmatrix} I_{n_{i}{({\Delta + 1})}} \\ {R_{12}^{*}R_{11}^{- 1}} \end{bmatrix}C}}}{and}} & (21) \\ {{R_{{ee},\min} = {C^{*}R_{11}^{- 1}C}},} & (22) \end{matrix}$ where the delay parameter Δ is adjusted to minimize the trace (or determinant) of R_(ee,min). Once {tilde over (B)}_(opt) is known, equation (14) is applied to develop W*_(opt).

FIG. 3 presents a flowchart for carrying out the method of determining the filter coefficients that processor 22 computes pursuant to scenario 1. Step 100 develops an estimate of the MIMO channel between the input points and the output point of the actual transmission channel. This is accomplished in a conventional manner through the use of training sequences. The estimate of the MIMO channel can be chosen to be limited to a given memory length, v, or can be allowed to include as much memory as necessary to reach a selected estimate error level. That, in turn, depends on the environment and is basically equal to the delay spread divided by T_(s).

Following step 100, step 110 determines the matrices, R_(nn), R_(xx), R_(xy) and R_(yy). The matrix R_(nn) is computed by first computing n=y−Hx and then computing the expected value E[n*n]—see equation (8) above. The matrix R_(xx) is computed from the known training sequences—see equation (7) above—(or is pre-computed and installed in processor 22). In may be noted that for uncorrelated inputs, R_(xx)=I. The matrices R_(xy) and R_(yy) are computed from the known training sequences and the received signal or directly from H and R_(nn)—see equations (5) and (6) above.

Following step 110, step 120 computes R=R_(xx) ⁻¹−H*R_(nn) ⁻¹H, and the partition components, R₁₁, R₁₂, and R₂₂, as per equation (20). Following step 120, step 130 computes R_(ee,min) from equation (22) and adjusts Δ to minimize the trace (or determinant) of R_(ee,min), computes {tilde over (B)}_(opt) from equation (21), and from {tilde over (B)}_(opt) determines the coefficients of the n_(i)×n_(i) filters of element 26, pursuant to equation (10). Step 140 computes W*_(opt) from equation (14), and finally, step 150 installs the coefficients developed in step 130 into the filters of element 26 and the coefficients developed in step 140 into the filters of element 23.

A second approach for computing {tilde over (B)}_(opt) utilizes the block Cholesky factorization (which is a technique that is well known in the art):

$\begin{matrix} {{{R \equiv {R_{xx}^{- 1} + {H^{*}R_{nn}^{- 1}H}}}\mspace{14mu} = {{{\begin{bmatrix} L_{1} & 0 \\ L_{2} & L_{3} \end{bmatrix}\begin{bmatrix} D_{1} & 0 \\ 0 & D_{2} \end{bmatrix}}\begin{bmatrix} L_{1}^{*} & L_{2}^{*} \\ 0 & L_{3}^{*} \end{bmatrix}}\mspace{14mu} \equiv {LDL}^{*}}},} & (22) \end{matrix}$ where L₁ is of size n_(i)(Δ+1)×n_(i)(Δ+1). Using the result in equations (18) and (19) yields

$\begin{matrix} {{{\overset{\sim}{B}}_{opt} = {{\begin{bmatrix} I_{n_{i}{({\Delta + 1})}} \\ {L_{2}L_{1}^{- 1}} \end{bmatrix}C} = {\begin{bmatrix} I_{n_{i}} \\ {L_{2}L_{1}^{- 1}C} \end{bmatrix}\mspace{45mu} = {L\left\lbrack {e_{n_{i}\Delta_{opt}}\mspace{14mu}\ldots\mspace{14mu} e_{{n_{i}{({\Delta_{{opt}\;} + 1})}} - 1}} \right\rbrack}}}}{and}} & (23) \\ {{R_{{ee},\min} = {{C^{*}D_{1}^{- 1}C}\mspace{70mu} = {{diag}\left( {d_{n_{t}\Delta_{opt}}^{- 1},\ldots\mspace{14mu},d_{{n_{i}{({\Delta_{opt} + 1})}} - 1}^{- 1}} \right)}}},} & (24) \end{matrix}$ where the index Δ_(opt) is chosen (as before) to minimize the trace and determinant of R_(ee,min). Using equation (23), equation (14) can be expressed as follows

$\begin{matrix} \begin{matrix} {W_{opt}^{*} = {{\overset{\sim}{B}}_{opt}^{*}R_{xx}{H^{*}\left( {{{HR}_{xx}H^{*}} + R_{nn}} \right)}^{- 1}}} \\ {= {{{\overset{\sim}{B}}_{opt}^{*}\left( {R_{xx}^{- 1} + {H^{*}R_{nn}^{- 1}H}} \right)}^{- 1}H^{*}R_{nn}^{- 1}}} \\ {= {\begin{bmatrix} {d_{n_{i}\Delta_{opt}}^{- 1}e_{n_{i}\Delta_{opt}}^{*}} \\ \vdots \\ {d_{{n_{i}{({\Delta_{opt} + 1})}} - 1}^{- 1}e_{{n_{i}{({\Delta_{opt} + 1})}} - 1}^{*}} \end{bmatrix}L^{- 1}H^{*}R_{nn}^{- 1}}} \end{matrix} & (25) \end{matrix}$

Yet a third approach for computing {tilde over (B)}_(opt) and R_(ee,min) defines {tilde over (B)}*=[C* B*] and partitions R^(⊥) into as

$\begin{bmatrix} R_{11}^{\bot} & R_{12}^{\bot} \\ R_{12}^{\bot*} & R_{22}^{\bot} \end{bmatrix},$ where R₁₁ ^(⊥) is of size n_(i)(Δ+1)×n_(i)(Δ+1), to yield

$\begin{matrix} \begin{matrix} {R_{ee} = {{\overset{\sim}{B}}^{*}R^{\bot}\overset{\sim}{B}}} \\ {\equiv {{\begin{bmatrix} C^{*} & {\overset{\_}{B}}^{*} \end{bmatrix}\begin{bmatrix} R_{11}^{\bot} & R_{12}^{\bot} \\ R_{12}^{\bot*} & R_{22}^{\bot} \end{bmatrix}}\begin{bmatrix} C \\ B \end{bmatrix}}} \\ {\equiv {{\begin{bmatrix} I_{n_{i}} & {\overset{\_}{B}}^{*} \end{bmatrix}\begin{bmatrix} {\overset{\_}{R}}_{11}^{\bot} & {\overset{\_}{R}}_{12}^{\bot} \\ {\overset{\_}{R}}_{12}^{\bot} & {\overset{\_}{R}}_{22}^{\bot} \end{bmatrix}}\begin{bmatrix} I_{n_{i}} \\ \overset{\_}{B} \end{bmatrix}}} \\ {= {\left( {{\overset{\_}{R}}_{11}^{\bot} - {{{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}{\overset{\_}{R}}_{12}^{\bot*}}} \right) + \left( {{\overset{\_}{B}}^{*} + {{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}} \right)}} \\ {{R_{22}^{\bot}\left( {{\overset{\_}{B}}^{*} + {{\overset{\_}{R}}_{12}^{\bot}\left( R_{22}^{\bot} \right)}^{- 1}} \right)}^{*},} \end{matrix} & (26) \end{matrix}$ where R ₁₁ ^(⊥)≡C*R₁₁ ^(⊥)C and R ₁₂ ^(⊥)=C*R₁₂ ^(⊥). Therefore, B _(opt) =− R ₁₂ ^(⊥)(R ₂₂ ^(⊥))⁻ W* _(opt)=[0_(n) _(i) _(×n) _(i) _(Δ) I _(n) _(i) − R ₁₂ ^(⊥)(R ₂₂ ^(⊥))⁻¹](R _(xx) H*(HR _(xx) H*+R _(nn))⁻¹  (27) R _(ee,min) = R ₁₁ ^(⊥) − R ₁₂ ^(⊥)(R ₂₂ ^(⊥))⁻¹ R ₁₂ ^(⊥)*  (28) Scenario 2

In this scenario it is assumed that users whose signals are received by the FIG. 1 receiver are ordered so that lower-indexed users are detected first, and current decisions from lower-indexed users are used by higher-indexed users in making their decisions, i.e., B₀ is a lower-triangular matrix. The general results of equations (21) and (22) can be applied by setting C′=[0_(n) _(i) _(×n) _(n) _(Δ)B*₀] where B₀ is an n_(i)×n_(i) monic lower-triangular matrix whose entries are optimized to minimize trace(R_(ee,min)). To this end, a partitioning can be defined where

$\begin{matrix} {{R_{11}^{- 1} \equiv \begin{bmatrix} R_{1} & R_{2} \\ R_{2}^{*} & R_{3} \end{bmatrix}},} & (29) \end{matrix}$ R₁₁ being the term corresponding to R₁₁ of equation (20), with R₁ being of size n_(i)Δ×n_(i)Δ, and R₃ being of size n_(i)×n_(i). Equation (22) simplifies to R_(ee,min)=B*₀R₃B₀  (30) It can be shown that, the optimum monic lower-triangular B₀ that minimizes trace(R_(ee,min)) is given by the nomic lower-triangular Cholesky factor of R₃ ⁻¹, i.e., R₃ ⁻¹=L₃D₃L*₃,  (31) which yields B₀ ^(opt)=L₃  (32) and R_(ee,min)=D₃ ⁻¹.  (33)

The result is that

${{\overset{\sim}{B}}_{opt} = {\begin{bmatrix} I_{n_{i}{({\Delta + 1})}} \\ {R_{12}^{*}R_{11}^{- 1}} \end{bmatrix}C}},$ as expressed in equation (21), with the modified value of R₁₁ ⁻¹, and with C*=0_(n) _(i) _(×n) _(i) _(Δ)B*₀  (34)

A second approach for computing the optimum FIR filter coefficients for the FIG. 1 receiver involves computing a standard—rather than a block—Cholesky factorization of the matrix R=R_(xx) ⁻¹+H*R_(nn) ⁻¹H (see the definition following equation (15)) in the form LDL*. Then, the coefficients of the element 23 filters is given by the n_(i) adjacent columns of L that correspond to a diagonal matrix with the smallest trace. Therefore, equations (23) and (25) are used to compute the corresponding coefficients, with the understanding that L is now a lower-triangular matrix, rather than a block lower-triangular matrix. The equivalence of the two approaches can be shown using the nesting property of Cholesky factorization.

FIG. 4 presents a flowchart for carrying out the method of determining the filter coefficients that processor 22 computes pursuant to scenario 2. Steps 100 through 120 are the same as in FIG. 3, but the method diverges somewhat in the following steps. In step 131 the partition according to equation (20) is developed for a Δ that minimizes R_(ee,min) of equation (33), and control passes to step 141, where B₀ ^(opt) is computed based on equations (31) and (32), followed by a computation of {tilde over (B)}_(opt) based on equations (21) and (34). Following step 141, step 151 computes W*_(opt) from equation (14), and finally, step 161 installs the coefficients developed in step 141 into the filters of element 26 and the coefficients developed in step 151 into the filters of element 23.

Scenario 3

When multistage detectors are employed, current decisions from all other users, obtained from a previous detection stage, are available to the user of interest. Therefore, suppressing their interfering effects would improve the performance of the receiver. This detection scenario has the same mathematical formulation as scenarios 1 and 2, except that B₀ is now constrained only to be monic, i.e., e_(i)*B₀e_(i)=1 for all 0≦i≦n_(i)−1. The general results in equations (21) and (22) still apply with C=[0_(n) _(i) _(×n) _(i) _(Δ)B*₀] where B₀ is optimized to minimize trace(R_(ee,min)). In short, under scenario 3, the following optimization problem is solved:

$\begin{matrix} {{{\min\limits_{B_{0}}\mspace{14mu}{{{trace}\left( {B_{0}^{*}R_{3}B_{0}} \right)}\mspace{14mu}{subject}\mspace{14mu}{to}\mspace{14mu} e_{i}^{*}B_{0}e_{i}}} = 1}\mspace{14mu}{{{{for}\mspace{14mu}{all}\mspace{14mu} 0} \leq i \leq {n_{i} - 1}},}} & (33) \end{matrix}$ where R₃ is as defined in equation (29). Using Lagranage multiplier techniques, it can be shown that the optimum monic B₀ and the corresponding MMSE are given by

$\begin{matrix} {{B_{0}^{opt} = \frac{R_{3}^{- 1}e_{i - 1}}{e_{i}^{*}R_{3}^{- 1}e_{i}}};\mspace{14mu}{0 \leq i \leq {n_{i} - 1.}}} & (34) \end{matrix}$ Thus, the method of determining the filter coefficients that processor 22 computes pursuant to scenario 3 is the same as the method depicted in FIG. 4, except that the computation of B₀ ^(opt) within step 141 follows the dictates of equation (34).

With the above analysis in mind, a design of the filter coefficients of the filters within elements 23 and 26 can proceed for any given set of system parameters, which includes:

-   -   MIMO channel memory between the input points and the output         point of the actual transmission channel, v,     -   The number of pre-filter taps chosen, N_(f),     -   The shortened MIMO memory, N_(b),     -   The number of inputs to the transmission channel, n_(i),     -   The number of output derived from the transmission channel,         n_(o),     -   The autocorrelation matrix of the inputs, R_(xx),     -   The autocorrelation matrix of the noise, R_(nn),     -   The oversampling used, l, and     -   The decision delay, Δ.

It should be understood that a number of aspects of the above disclosure are merely illustrative, and that persons skilled in the art may make various modifications that, nevertheless, are within the spirit and scope of this invention. 

1. A receiver having n_(o) receiving antennas and adapted to respond to signals that are concurrently transmitted by n_(i) antennas that are remote from said receiver, comprising: a feed-forward filter module consisting of n₀ blocks of Finite Impulse Response (FIR) filters, each having (a) an input that is coupled to signals that are related to signals received by a different one of said n₀ antennas, (b) outputs O_(j), j=1, 2, . . . , n_(i), (c) an FIR filter between said input and each of said n_(i) outputs, the n₀ blocks of FIR filters thus having n₀×n_(i) FIR filters, where coefficients of said n₀×n_(i) FIR filters are computed based on environmental parameters that are designer specified; means for developing sums S_(j), j=1, 2, . . . , n_(i), where sum S_(j) combines the j^(th) output of each of the n₀ blocks of FIR filters; a subtractor block for subtracting from each of said sums S_(j) a signal D_(j), j=1, 2, . . . , n_(i) to result in signals E_(j), j=1, 2, . . . , n_(i); a decision block responsive to said signals E_(j) for developing n_(i) output signals G_(j); and a feedback filter module consisting of n_(i) blocks of feedback FIR filters, each having (a) a feedback FIR filter input that is coupled to a different one of said signals G_(j) (b) feedback FIR filter outputs H_(j), j=1, 2, . . . , n_(i), (c) a FIR filter between said feedback FIR filter input and each of said n_(i) feedback FIR filter outputs, the n_(i) blocks of feedback FIR filters thus having n_(i)×n_(i) FIR filters, where coefficients of said n_(i)×n_(i) FIR filters are computed based on environmental parameters that are designer specified.
 2. The receiver of claim 1 where said signals that are received by said receiver comprises symbols, with an inter-symbol period of T, and said receiver further includes a sampling circuit interposed between said n₀ receiving antennas and said feed-forward filter module, where the sampling circuit oversamples by a factor of k, where k is an integer greater than
 1. 3. The receiver of claim 1 where the 0^(th) order coefficients of all of the FIR filters in said feedback filter module are restricted to have 0 value. 